package com.xd.core.business.vo;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xd.core.business.entity.IncomingCommonLoan;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 进件信息表
 * </p>
 *
 * @author ZX
 * @since 2025-02-23
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "IncomingInfo对象", description = "进件信息表")
public class OrderDetailIncomingInfoVo implements Serializable {


    @ApiModelProperty(value = "进件ID")
    private Integer incomingId;

    @ApiModelProperty(value = "姓名")
    private String name;

    @ApiModelProperty(value = "身份证")
    private String idCard;

    @ApiModelProperty(value = "身份证正面地址")
    private String idCardFrontUrl;

    @ApiModelProperty(value = "身份证背面地址")
    private String idCardReverseUrl;

    @ApiModelProperty(value = "手机号")
    private String phone;

    @ApiModelProperty(value = "邮箱")
    private String email;

    @ApiModelProperty(value = "所在城市")
    private String city;

    @ApiModelProperty(value = "现住地址")
    private String address;

    @ApiModelProperty(value = "工作行业")
    private String industry;

    @ApiModelProperty(value = "工作时长")
    private String duration;

    @ApiModelProperty(value = "职务")
    private String office;

    @ApiModelProperty(value = "税后收入")
    private String afterTaxIncome;

    @ApiModelProperty(value = "学历")
    private String degree;

    @ApiModelProperty(value = "婚姻状况")
    private String marriage;

    @ApiModelProperty(value = "期望金额")
    private String expectedAmount;

    @ApiModelProperty(value = "附件")
    private String annex;

    @ApiModelProperty(value = "担保人姓名")
    private String guarantorName;

    @ApiModelProperty(value = "担保人手机号")
    private String guarantorPhone;

    @ApiModelProperty(value = "担保人关系")
    private String guarantorRelation;

    @ApiModelProperty(value = "担保人身份证")
    private String guarantorIdCard;

    @ApiModelProperty(value = "担保人邮箱")
    private String guarantorMail;

    @ApiModelProperty(value = "有无共同借款人")
    private String commonLoanYes;

    @ApiModelProperty(value = "所属资方ID")
    private Integer companyId;

    @ApiModelProperty(value = "进件人ID")
    private Integer incomingUserId;

    @ApiModelProperty(value = "归属资方员工ID")
    private Integer manageUserId;

    @ApiModelProperty(value = "创建时间")
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", shape = JsonFormat.Shape.STRING, timezone = "GMT+8")
    private Date createTime;

    @ApiModelProperty(value = "争议方式(1--公证,2--仲裁,3--诉讼)")
    private String controversy;

    @ApiModelProperty(value = "仲裁城市")
    private String cityRemark;

    @ApiModelProperty(value = "流程状态（1-进件中，2-进件审核中，3-等待授信，4-授信失败，5-授信完成,6-等待签约,7-签约完成,\" +\n" +
            "            \"8-抵押办理,9--抵押完成,10--公证办理,11--待放款）")
    private String status;

    @ApiModelProperty(value = "进件产品id")
    private Integer productId;

    @ApiModelProperty(value = "订单状态(0--启用,1--停用)")
    private String isEnable;

    @ApiModelProperty(value = "审核状态(0--待审核,1--已审核)")
    private String examineStatus;

    @ApiModelProperty(value = "贷款类型")
    private String loanType;

    @ApiModelProperty(value = "更新时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", shape = JsonFormat.Shape.STRING, timezone = "GMT+8")
    private Date updateTime;

    @ApiModelProperty(value = "贷款合同id")
    private Integer loanContractId;

    @ApiModelProperty(value = "合同签约日期")
    @JsonFormat(pattern = "yyyy-MM-dd", shape = JsonFormat.Shape.STRING, timezone = "GMT+8")
    private Date contractTime;

    @ApiModelProperty(value = "城市坐标")
    private String citySqes;

    @ApiModelProperty(value = "进件订单号")
    private String incomingOrder;

    @ApiModelProperty(value = "授信ID")
    private Integer creditId;

    @ApiModelProperty(value = "授信金额")
    private BigDecimal amount;

    @ApiModelProperty(value = "授信起始日期")
    @JsonFormat(pattern = "yyyy-MM-dd", shape = JsonFormat.Shape.STRING, timezone = "GMT+8")
    private Date startTime;

    @ApiModelProperty(value = "授信到期日期")
    @JsonFormat(pattern = "yyyy-MM-dd", shape = JsonFormat.Shape.STRING, timezone = "GMT+8")
    private Date expireTime;

    @ApiModelProperty(value = "罚款利率%")
    private BigDecimal penaltyRate;

    @ApiModelProperty(value = "借款用途")
    private String used;

    @ApiModelProperty(value = "借款人账户名")
    private String accountName;

    @ApiModelProperty(value = "借款人收款账户")
    private String receivingAccount;

    @ApiModelProperty(value = "借款人开户银行")
    private String bank;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "授信人ID")
    private Integer userId;

    @ApiModelProperty(value = "还款账号")
    private String repayAccount;

    @ApiModelProperty(value = "还款开户行")
    private String repayBank;

    @ApiModelProperty(value = "还款账户名")
    private String repayName;

    @ApiModelProperty(value = "绑卡状态(0--未绑定,1--已绑定)")
    private String cardStatus;

    @ApiModelProperty(value = "报文流水号")
    private String msgId;

    @ApiModelProperty(value = "共借人列表")
    private List<IncomingCommonLoan> incomingCommonLoans;

    @ApiModelProperty(value = "是否抵押(0--是,1--否)")
    private String isMortgage;

    @ApiModelProperty(value = "银行预留手机号")
    private String bankPhone;

    @ApiModelProperty(value = "个人信息授权书")
    private String contract;

    @ApiModelProperty(value = "放款id和合同发起时间")
    private List<OutIdTime> outIdTimes;

}
